سلام
بخش ششم از سری آموزش های PHP
كنترل جريان به نحوه و ترتيب اجراي دستورات PHP برمي گردد . عبارات شرطي كه بخشي از دستورات كنترل جريان را تشكيل مي دهند براي اين هستند كه بسته به شرايط مختلف دستورات مختلفي اجرا شوند .
دستور if
اولين دستور كنترل جريان در php دستور شرط (if) است . كلمه if كه جزء كلمات رزرو شده php است در لغت به معناي اگر و آيا است . در واقع با استفاده از اين دستور بررسي مي كنيم كه آيا شرايط خاصي برقرار است يا خير و سپس مي گوئيم در صورت برقراري شرط يك دستور يا يك سري از دستورات اجرا شود . مانند كد زير :
$d = date("D");
if($d == "Fri") echo "Have a good weekend!"; ?> |
قطعه کد بالا در صورتیکه مقدار متغیر ، برابر با عبارت Fri باشد پیغام مربوطه را چاپ می کند و در غیر اینصورت هیچ اقدامی انجام نمی دهد . حال اگر بخواهیم در صورت عدم برقراری شرط نیز اتفاقی بیفتد و دستور یا دستوراتی اجرا شود یک بخش دیگر به دستور if اضافه می شود و آن دستور else می باشد به شکل زیر :
$d = date("D");
if($d == "Fri") echo "Have a good weekend!"; else echo "Have a good week day !"; ?> |
حتی می توانیم در صورت عدم برقراری شرط اول شرط دیگری را بررسی کنیم در اینصورت می توانید از ساختار elseif استفاده کرد :
$d = date("D");
if($d == "Fri") echo "Have a good weekend!"; elseif($d == "Sat") echo "Hi this is Saturday !"; elseif($d == "Sun") echo "Hi this is Sunday !"; elseif($d == "Mon") echo "Hi this is Monday !"; ?> |
این شکل نوشتن elseif معادل نوشتن یک else و if جداگانه است . مانند زیر :
$d = date("D");
if($d == "Fri") echo "Have a good weekend!"; else if($d == "Mon") echo "Hi this is Monday !"; ?> |
احتمالا اکنون به این مطلب فکر می کنید که اگر شرایط مورد بررسی زیاد باشد تعداد بلوک های if زیاد می شود و خوانایی کد پائین می آید ؟ درست است . علاوه بر این سرعت اجرا هم در صورت وجود بلوک های متعدد if پائین می آید . راهکاری که برای این وضعیت پیش بینی شده است استفاده از دستور switch می باشد . که در ادامه به بررسی آن می پردازیم .
دستور switch
این دستور به شکل کلی زیر نوشته می شود :
switch($var)
{ case case . . . default : /* some code */ break; } ?> |
در این دستور به بررسی مقدار یک متغیر خاص می پردازیم و بر اساس مقادیر متنوع آن تصمیم گیری می کنیم . در قطعه کد بالا به جای مقادیر option که در علامت <> آمده است باید مقادیری از متغیر را بنویسیم که میخواهیم تساوی متغیر با آن مقدار خاص را بررسی کنیم . علامت <> بدین معنی است که باید این علامت و هرچه در آنست را برداشته و چیز دیگری (در اینجا مقدار) به جای آن بگذارید . به عنوان مثال یکی از قطعه کدهای بالا را با دستور switch می نویسیم :
$d = date("D");
switch($d) { case "Fri" : echo "Have a good weekend !";break; case "Mon" : echo "Have a good week";break; default : echo "Have a good weekday"; } ?> |
در کد بالا مقدار متغیر d بررسی می شود اگر مقدار متغیر برابر با Fri باشد عبارت Have a good weekend چاپ شده و به خاطر رسیدن به دستور break کنترل برنامه به بعد از بلوک switch منتقل می شود . در حقیقت کار دستور break همین است که اجرای داخل دستور Switch را به پایان رساند . اگر دستور break وجود نداشته باشد از جایی که شرط case محقق شود تا رسیدن به اولین دستور break اجرای برنامه ادامه می یابد . اگر مقدار متغیر برابر با Mon باشد عبارت Have a good week چاپ می شود و اگر مقدار متغیر برابر هیچ یک از دو مقدار فوق (Fri و Mon) نباشد دستور default اجرا شده و عبارت Have a good weekday چاپ می شود . البته وجود دستور default اختیاریست . همچنین وجود دستور break نیز اختیاریست و صرفا به منطق اجرای برنامه و خواست برنامه نویس بستگی دارد . مثلا قطعه کد زیر را در نظر بگیرید :
$d = date("D");
switch($d) { case "Fri" : echo "Have a good weekend !";break; case "Mon" : echo "Have a good week"; case "Thu" : echo "This is Thuesday";break; default : echo "Have a good weekday"; } ?> |
در این کد اگر مقدار متغیر برابر Mon باشد اول عبارت Have a good week چاپ شده و سپبه دلیل عدم وجود دستور break در انتهای این خط دستور case بعدی اجرا شده و عبارت This is Thuesday چاپ شده و بعد با رسیدن کنترل برنامه به دستور break کنترل برنامه به بعد از بلوک switch - case منتقل می شود .
پایان بخش ششم
منتظر بخش هفتم باشید.
برای خرید آموزش تصویری PHP به زبان فارسی می توانید از لینک زیر استفاده کنید.
نظرات شما عزیزان: